import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
import axios from 'axios'
export default new Vuex.Store({
  state: {
    // tabs 切换数据
    tabs: [],
    // 书架数据
    collect: []
  },
  mutations: {
    // 设置初始化 tabs 数据
    FetchTabs(state, payload) {
      state.tabs = payload
    },
    // 添加书架
    Add_Collect(state, payload) {
      state.collect.push(payload)
    }
  },
  getters: {
    // 模糊搜索
    searchTab(state) {
      // 返回函数 searchValue 是搜索的数据
      return function (searchValue) {
        // 准备空数组
        let list = []
        // 循环第一层数据
        state.tabs.forEach(item => {
          // 筛选第二层数据  模糊搜索
          // 并将结果 保存的list 数据中
          list = list.concat(item.children.filter(item => item.title.includes(searchValue)))
        })
        // 返回搜索的数据
        return list
      }
    }
  },
  actions: {
    // 获取tabs数据
    FetchTabs(context) {
      axios.get('/tabs').then(resp => {
        // 提交mutations
        context.commit('FetchTabs', resp.data.data)
      })
    }
  },
  modules: {
  }
})
